Assistant device arbitration using wearable device data

ABSTRACT

Implementations set forth herein relate to effectuating device arbitration in a multi-device environment using data available from a wearable computing device, such as computerized glasses. The computerized glasses can include a camera, which can be used to provide image data for resolving issues related to device arbitration. In some implementations, a direction that a user is directing their computerized glasses, and/or directing their gaze (as detected by the computerized glasses with prior permission from the user), can be used to prioritize a particular device in a multi-device environment. A detected orientation of the computerized glasses can also be used to determine how to simultaneously allocate content between a graphical display of the computerized glasses and another graphical display of another client device. When content is allocated to the computerized glasses, content-specific gestures can be enabled and actionable at the computerized glasses.

BACKGROUND

Humans may engage in human-to-computer dialogs with interactive softwareapplications referred to herein as “automated assistants” (also referredto as “digital agents,” “chatbots,” “interactive personal assistants,”“intelligent personal assistants,” “assistant applications,”“conversational agents,” etc.). For example, humans (which when theyinteract with automated assistants may be referred to as “users”) mayprovide commands and/or requests to an automated assistant using spokennatural language input (i.e., utterances), which may in some cases beconverted into text and then processed, and/or by providing textual(e.g., typed) natural language input.

Users may engage with automated assistants using multiple clientdevices. For example, some users may possess a coordinated “ecosystem”of client devices comprising a combination of one or more smart phones,one or more tablet computers, one or more vehicle computing systems, oneor wearable computing devices, one or more smart televisions, and/or oneor more standalone interactive speakers, among other client devices. Auser may engage in human-to-computer dialog with an automated assistantusing any of these client devices (assuming an automated assistantclient is installed). In some cases, these client devices may bescattered around the user's primary residence, secondary residence,workplace, and/or other structure. For example, mobile client devicessuch as smart phones, tablets, smart watches, etc., maybe on the user'sperson and/or wherever the user last placed them. Other client devices,such as traditional desktop computers, smart televisions, and standaloneinteractive speakers may be more stationary but may be located atvarious places (e.g., rooms) within the user's home or workplace.

When a user has multiple automated assistant devices within their home,each respective assistant device may have different operating statuses,as a result of performing different actions. At such times, a user mayrequest to modify a particular action that is ongoing at an assistantdevice but inadvertently cause a different assistant device to modify adifferent action. This can be in part because some assistant devices maysolely rely on whether a respective assistant device heard a user say acommand to modify a particular action. As a result, the adaptability ofthe assistant devices to certain multi-assistant environments can belimited when the user is not speaking directly to the assistant devicethey intended to interact with. For instance, the user may initialize anaction at an assistant device by accident, thereby potentially requiringthe user to repeat a previous spoken utterance to re-invoke the actionat the desired device.

Consequently, in response to accidentally invoking a particularassistant device, memory and processing bandwidth for the particularassistant device may be momentarily consumed. Such seemingly redundantconsequences can waste network resources because, for example, someassistant inputs may be processed by natural language models that areonly accessible via a network connection. Furthermore, any data relevantto an inadvertently affected action would have to be re-downloaded tothe desired device in furtherance of completing the affected action, andany energy wasted from canceling an energy-intensive action (e.g.,controlling display backlighting, heating elements, and/or motorizedappliances) may not be recoverable.

SUMMARY

Implementations set forth herein relate to device arbitration techniquesthat involve processing data, from computerized glasses worn by a user,to identify a suitable client device to which a user input is directed.Allowing device arbitration to be performed with data from computerizedglasses can minimize a number of instances in which a client device isaccidentally activated. In this way, memory, power, and networkbandwidth can be preserved for those devices that are most susceptibleto accidental activation from certain detected user inputs.

In some implementations, a user can be located in an environment thatincludes multiple assistant-enabled devices, such as in a living room ofa home of the user. The assistant-enabled devices can be activated inresponse to a user input, such as a spoken utterance. Furthermore, theassistant-enabled devices can assist with device arbitration to identifya particular computing device that the user may have intended to invokewith the user input. The user can be wearing computerized glasses whenproviding the spoken utterance, and the computerized glasses can includeone or more cameras that can provide image data for detecting adirection in which the user may be facing. The identified direction canthen be used during device arbitration to prioritize a particular deviceover other devices based on the direction that the user is facing.

In some implementations, the computerized glasses can include circuitryfor detecting a location of pupils of the user, to determine a gaze ofthe user relative to an area and/or an object in an environment. Forexample, the computerized glasses can include a forward facing camerathat can be used to identify an area that a user is facing, and areverse facing camera that can be used to identify the gaze of the user.When the user provides an input to an automated assistant that isaccessible via multiple devices in an environment, the computerizedglasses can provide information regarding user gaze to assist withdevice arbitration. For instance, the user can provide a spokenutterance to the automated assistant when the user is facing an area ofthe environment that includes multiple assistant-enabled devices. Datagenerated at the computerized glasses can be used to determine whether agaze of the user is directed more towards a particular assistant-enableddevice compared to the other assistant-enabled devices. When aparticular device is selected based on the gaze of the user, theautomated assistant can respond to the spoken utterance of the user atthe particular device.

In some implementations, an assistant-enabled device that includes acamera can provide image data that can be processed, with other imagedata from the computerized glasses, to perform device arbitration. Forinstance, visual features of a user and/or environment can be determinedfrom one or more cameras that are separate from the computerizedglasses, to determine whether to prioritize a particular device duringdevice arbitration. As an example, an appendage of a user may bedirected toward a particular device, but the appendage may not bevisible in a viewing window of a camera of the computerized glasses.However, an orientation of the appendage may be visible within a viewingwindow of a camera of another computing device (e.g., a standalonedisplay device). In some instances, a user may be facing a particulararea that includes two or more assistant-enabled devices and may providea spoken utterance. The user may concurrently have an appendage (e.g., ahand/or a foot) that is directed toward a particular device of the twoor more assistant-enabled devices when the user is providing the spokenutterance. In such instances, the image data from the other computingdevice (e.g., from a camera of the standalone display device) and theother image data from the computerized glasses can be processed toselect a particular device for responding to the spoken utterance.

In some implementations, the computerized glasses can detect one or moredifferent outputs (e.g., a first output, a second output, etc.) from oneor more different assistant-enabled devices to determine a locationand/or arrangement of the computerized glasses relative to one or moredifferent devices. For example, to calibrate the computerized glassesfor a particular user, the user can provide a spoken utterance such as,“Assistant, I'm looking at the kitchen display,” while gazing at adisplay interface of a computing device in their kitchen. In response,image data captured via a camera of the kitchen computing device and/orother image data capture via the computerized glasses can be processedto calibrate the computerized glasses for that particular user.

In some instances, this calibration operation can enhance theperformance of the computerized glasses and/or other assistant-enableddevices—in particular when a user may not typically arrange their headand/or face entirely toward an assistant-enabled device when the user isgazing at the assistant-enabled device. Additionally, this calibrationoperation can enhance interactions between the user and otherassistant-enabled devices that may not have an integrated camera, andtherefore may not be able to provide image data during devicearbitration. For example, a user may be gazing at a particularassistant-enabled device but the assistant-enabled device may not bewithin a viewing window of an outward facing camera of the computerizedglasses. The gaze detected by an inward facing camera of thecomputerized glasses can be used, with prior permission from the user,during device arbitration to prioritize the assistant-enabled devicethat the user is gazing at over other devices (e.g., another device thatmay be in the viewing window of the outward facing camera).

In some implementations, calibration and/or device arbitration can beperformed using communications between one or more assistant-enableddevices and the computerized glasses via one or more differentmodalities. For example, a standalone speaker device can include a lightthat can illuminate for a forward facing camera of the computerizedglasses to detect a location of the standalone speaker relative to thecomputerized glasses. Alternatively, or additionally, ultrasonic soundcan be emitted by one or more devices, such as the computerized glassesand/or one or more other assistant-enabled devices, to determinelocations of devices relative to other devices. In some implementations,one or more lights on a device can be detected by a camera of thecomputerized glasses for determining whether the device: has lostconnection, is no longer synced with another device, and/or is otherwiseexhibiting a particular state that can be communicated via the one ormore lights. In this way, the computerized glasses can detect changes toa respective status of one or more devices as the user is wearing thecomputerized glasses.

In some implementations, a location of a device relative to thecomputerized glasses can be used to control certain features of thecomputerized glasses and/or one or more assistant-enabled devices. Forexample, content being viewed at a computing device (e.g., a television)can be associated with content being rendered at a display interface ofthe computerized glasses. In some instances, a user can be viewing alive stream of a sports event on their television, and can also beviewing comments from friends in the display interface of thecomputerized glasses. When the user leaves a vicinity of the televisionand/or otherwise turns their gaze away from the television, the contentthat was being rendered at the television can be, according to apreference of the user, rendered at the display interface of thecomputerized glasses. For example, when the user leaves the vicinity ofa television in their living room to change their laundry in anotherroom of their home, a change in the relative location of thecomputerized glasses and/or a change in a gaze of the user can bedetected. Based on this change in the position of the user, additionalcontent data can be rendered at the display interface of thecomputerized glasses. Alternatively, or additionally, based on thischange in position of the user, a reduction in content can beeffectuated at the television to preserve power and other computationalresources, such as network bandwidth.

The above description is provided as an overview of some implementationsof the present disclosure. Further descriptions of thoseimplementations, and other implementations, are described in more detailbelow.

Other implementations may include a non-transitory computer-readablestorage medium storing instructions executable by one or more processors(e.g., central processing unit(s) (CPU(s)), graphics processing unit(s)(GPU(s)), and/or tensor processing unit(s) (TPU(s)) to perform a methodsuch as one or more of the methods described above and/or elsewhereherein. Yet other implementations may include a system of one or morecomputers that include one or more processors operable to execute storedinstructions to perform a method such as one or more of the methodsdescribed above and/or elsewhere herein.

It should be appreciated that all combinations of the foregoing conceptsand additional concepts described in greater detail herein arecontemplated as being part of the subject matter disclosed herein. Forexample, all combinations of claimed subject matter appearing at the endof this disclosure are contemplated as being part of the subject matterdisclosed herein.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A and FIG. 1B illustrate views of a user invoking an automatedassistant while wearing computerized glasses that can assist with devicearbitration.

FIG. 2 illustrates a view of a user wearing computerized glassesaccording to some implementations discussed herein.

FIG. 3A, FIG. 3B, FIG. 3C, FIG. 3D, and FIG. 3E illustrate views of auser interacting with an automated assistant that can rely oncomputerized glasses for device arbitration.

FIG. 4 illustrates a system for performing device arbitration using dataavailable from a device, such as computerized glasses, that hasfunctionality for performing augmented reality.

FIG. 5 illustrates a method for effectuating device arbitration in amulti-device environment using data available from a wearable computingdevice, such as computerized glasses.

FIG. 6 is a block diagram of an example computer system.

DETAILED DESCRIPTION

FIG. 1A and FIG. 1B illustrate a view 100 and a view 120, respectively,of a user 102 invoking an automated assistant while wearing computerizedglasses 104 that can assist with device arbitration. The computerizedglasses 104 can assist with device arbitration by at least providingimage data characterizing a field of view 112 of the user 102 and/or thecomputerized glasses 104, and/or characterizing a gaze of the user 102.In this way, when assistant input is detected at multiple devices, datafrom the computerized glasses 104 can be used to identify a particulardevice to which the user 102 is directing the assistant input. Forexample, the user 102 can be watching television 106 while sitting inenvironment 108, such as a living room of the user 102. While watchingtelevision 106, a field of view 112 of the user 102 can include thetelevision 106, a display device 118, and a tablet device 110. In someimplementations, the television 106 can include a computing device thatprovides access to the automated assistant, or, alternatively, a dongle126 (i.e., a detachable accessory device) can be attached to thetelevision 106 for certain content to be rendered at the television 106.The display device 118 and the tablet device 110 can also provide theuser 104 with access to the automated assistant.

While wearing the computerized glasses 104, the user 102 can provide aspoken utterance 114 such as, “Assistant, play the movie I was watchinglast night.” The user 102 can provide the spoken utterance 114 to modifyan operation of the television 106 and/or the dongle 126. However,because the user 102 is located in the environment 108 with multipleassistant-enabled devices (e.g., the tablet device 110 and the displaydevice 118), multiple different devices can detect the spoken utterance114 from the user 102. For example, each of the tablet device 110, thedisplay device 118, the television 106, and the computerized glasses 104can detect the spoken utterance 114 from the user 102. As a result, adevice arbitration process can be initialized at one or more of thedevices and/or a remote computing device in order to identify aparticular device that the user 102 is directing the spoken utterance114.

In some implementations, the device arbitration process can includeidentifying the devices that detected the spoken utterance 114 from theuser 102 and also determining whether any of the identified devices areassociated with the field of view 112 of the user 102. For example, acomputing device that is performing the arbitration process candetermine that the television 106, the display device 118, the dongle126, and the tablet device 110 are associated with the field of view 112of the user of 102. This determination can be based on image datagenerated by one or more cameras of the computerized glasses 104. Thecomputing device can then determine that the television 106 occupies aportion of the field of view 112 that is further from a periphery orouter border of the field of view 112 than the tablet device 110 and thedisplay device 118. Alternatively, or additionally, the computing devicethat is performing the arbitration process can determine that image datafrom another camera of the television 106 and/or the tablet device 110indicates that an orientation of the user 102 is directed more towardsthe television 106 than the tablet device 110 and the display device118.

Based on one or more of these determinations, the computing deviceperforming the device arbitration process can determine that thetelevision 106 is the device that the user 102 was directing the spokenutterance 114 to—instead of the display device 118. In someimplementations, when the television 106 is subject to automatedassistant inputs because of the dongle 126, the device arbitrationprocess can result in a selection of the dongle 126 as being subject tothe spoken utterance 114. Therefore, even though the dongle 126 may notbe visible to the user 102 and/or maybe hidden from the field of view112 by the television 106, the dongle 126 may nonetheless be responsiveto the spoken utterance 114 when the user 102 is directing their gaze ina direction of the dongle 126 when they provide an assistant input. Forexample, audio data corresponding to the spoken utterance 114 can becaptured by a microphone of the tablet device 110 and another microphoneof the display device 118, but the operation(s) requested by the user102 can be performed at the television 106 and/or the dongle 126 basedon image data from the computerized glasses 104. For instance, based onidentifying a particular computing device to be responsive to the spokenutterance 114, the television 106 can perform an operation 116 ofplaying a movie per the spoken utterance 114 from the user 102, insteadof the moving being played at the display device 118 or the tabletdevice 110.

FIG. 1B illustrates a view 120 of the user 102 changing their field ofview 124 to face a computing device 122 that is located in a differentarea of the environment 108. The user 102 can change their orientationto direct a spoken utterance to a different device from the television106. For example, the computing device 122 can be performing anoperation 128 of playing music when the user initially provided theprevious spoken utterance 114. Therefore, to shut off the music withoutaffecting the movie at the television 106, the user 102 can direct theirface and the computerized glasses 104 more towards the computing device122 than the television 106. In some implementations, the computerizedglasses 104 can include an outward facing camera with a field of view124 (i.e., viewing window or visual perspective), and the outward facingcamera can generate image data that can be used during a devicearbitration process. Alternatively, or additionally, the computerizedglasses 104 can include an inward facing camera, and the inward facingcamera can also generate image data that can be used during the devicearbitration process.

For example, image data generated using the inward facing camera cancharacterize a gaze of the user 102 being directed slightly upwardtowards the direction of the computing device 122 and away from thetablet device 110. In this way, despite a microphone of the computingdevice 122 not detecting spoken inputs as clearly as the tablet device110 or the display device 118 (at least when the user 102 is positionedas depicted in FIG. 1B), the image data from the inward facing cameracan indicate that the gaze of the user 102 is directed at the computingdevice 122. For example, the user 102 can provide a spoken utterance 130such as, “Assistant, stop,” when the television 106 is playing a movieand the computing device 122 is playing music. In order to determinethat the computing device 122 is intended to be the target of the spokenutterance 130, image data from one or more cameras of the computerizedglasses 104, and/or data from one or more other devices, can beprocessed during a device arbitration process.

In some implementations, a heuristics process and/or one or more trainedmachine learning models can be used during the device arbitrationprocess to select a particular device to be responsive to an input froma user. For example, one or more trained machine learning models can beused to process image data from the inward facing camera and other imagedata from an outward facing camera to identify a device that a userinput is directed to. Alternatively, or additionally, a heuristicprocess can be used to determine whether to prioritize a particulardevice over other candidate devices based on data from one or moresources. For example, a device that is not located in a field of view ofa user and/or computerized glasses can be considered to have less of apriority than another device that is determined to be within the fieldof view of the user and/or the computerized glasses. For instance, whenthe computing device 122 is prioritized over other devices in theenvironment 108, one or more operations can be performed at thecomputing device 122 to satisfy a user request embodied in the spokenutterance 130. For example, a computing device 122 can perform anoperation 132 to cause music to no longer be playing at the computingdevice 122.

FIG. 2 illustrates a view 200 of a user 202 wearing computerized glasses204 according to some implementations discussed herein. The computerizedglasses 204 can include a computer 208, which can include one or moreprocessors and/or one or more memory devices, and can receive power fromone or more energy sources (e.g., battery, wireless power transfer,etc.). The computer 208 can be at least partially embodied by a housing214 and/or can be separate from the housing 214. The housing 214 canresemble frames of one or more different styles of eyeglasses and canhave one or more lenses 206 attached to the housing 214. In someimplementations, the computerized glasses 204 can include one or moreforward facing cameras 210, which can be arranged to have a field ofview that corresponds to a field of view of the user 202. In someimplementations, the computerized glasses 204 can include one or moreinward facing cameras 212, which can be arranged to have another fieldof view that includes one or more eyes of the user 202. For example, oneor more inward facing cameras 212 can be arranged to capture image datacharacterizing a position of a left eye and/or a right eye of the user202. In some implementations, the computer 208 can be connected to oneor more antennas and/or other communication hardware that allows thecomputer 208 to communicate with one or more other computing devices.For example, the computerized glasses 204 can connect to a Wi-Finetwork, LTE network, and/or can communicate via Bluetooth protocol,and/or any other communications modality.

In some implementations, the one or more lenses 206 can operate as adisplay interface for rendering graphical content that is visible to auser who is wearing the computerized glasses 204. The graphical contentthat is rendered at the lenses 206 can assist with device arbitration inresponse to multiple devices detecting an input from the user 202. Forexample, the user 202 can be directing their head and the computerizedglasses 204 toward a direction that causes a first computing device anda second computing device to be in a field of view of the forward facingcamera 210. When the user 202 is directed the computerized glasses 204in this direction, the user 202 can provide a spoken utterance to, forexample, cause a particular computing device to play music from a musicapplication. The automated assistant can detect the spoken utteranceand, in response, cause multiple instances of an icon for the musicapplication to be rendered in the lenses 206. For example, a firstinstance of the music application icon can be rendered in the lenses 206above the first computing device and a second instance of the musicapplication icon can be rendered in the lenses 206 above the secondcomputing device.

In some implementations, each instance of the music application icon canbe rendered in a way that indicates to the user that a particular devicehas not been selected to respond to the spoken utterance. For example,each instance of the music application icon can be “grayed out,” blurry,blinking, and/or otherwise have one or more features that indicate thatone of the devices should be selected by the user. In order to selectone of the devices, the user 202 can adjust their gaze and/or thedirection of the computerized glasses 204 more towards the firstcomputing device or the second computing device. In response, theautomated assistant can detect the adjustment of the gaze and/or facingdirection of the user and cause the first instance or the secondinstance of the music application icon to provide feedback that one hasbeen selected. For example, when the user 202 directs their gaze and/orthe computerized glasses 204 more towards the first computing device,the first instance of the music application can icon blink, shake,become idle, no long be grayed out, no longer be blurry, and/orotherwise indicate that the first computing device has been selected. Inthis way, the user 202 can receive feedback that they have selected aparticular device and redirect their gaze and/or the computerizedglasses 204 if they prefer the second computing device. In someimplementations, if the user 202 is satisfied with their selection theuser 202 can continue to look at the first computing device for athreshold period of time, or look away from both computing devices, inorder to confirm their selection and cause the first computing device tobe responsive to the spoken utterance.

In some implementations, graphical content rendered at the lenses 206can assist with clarifying parameters of a particular request submittedby the user to an automated assistant and/or another application. Forexample, the user 202 can provide a spoken utterance such as, “Play somemusic,” and, in response, the automated assistant can cause a first iconfor a first music application and a second icon for a second musicapplication to be rendered in the lenses 206. The icons can be renderedat or near a particular computing device that the user 202 is directingtheir attention towards, and the icons can be rendered to providefeedback to encourage the user 202 to select a particular musicapplication for rendering the music. In some implementations, a timercan also be rendered at the lenses 206 in order to indicate an amount oftime that the user has before a particular music application isselected. For example, the automated assistant can cause a particularicon to be rendered to provide visual feedback indicating that the musicapplication corresponding to that particular icon will be selected bydefault if the user 202 does not provide additional input that indicateswhether they favor one application over the other.

In some implementations, graphical content rendered at the lenses 206can correspond to parameters to be provided to an application inresponse to an assistant input from the user 202. For example, inresponse to the spoken utterance, “Play the new song,” the automatedassistant can cause a first graphical element and a second graphicalelement to be rendered in the lenses 206 at or near a particular audiodevice. The first graphical element can include text that identifies thename of a first song, and the second graphical element can include textthat identifies the name of a second song. In this way, the user 202 canbe put on notice that there was some ambiguity to the spoken utterancethey provided, and that additional input may be needed in order for aparticular song to be selected. The user 202 can then provide anadditional input (e.g., adjust their gaze, rotate their head, perform agesture, tap the housing 214 while gazing at a particular icon, provideanother spoken utterance, and/or provide any other input) in order tospecify a particular song. In some implementations, as a change inorientation of the user 202 is detected, the graphical content renderedin the lenses 206 can be adjusted according to the change inorientation. For example, an icon that is rendered to appear above acomputing device that the user 202 looking at can be shifted in thelenses 206 in a direction that is opposite relative to a direction thatthe user 202 has rotated their head. Similarly, the icon can no longerbe rendered in the lenses 206 when the computing device is no longer ina field of view of the user 202 and/or the computerized glasses 204.

FIG. 3A, FIG. 3B, FIG. 3C, FIG. 3D, and FIG. 3E, illustrate a view 300,a view 320, a view 340, a view 360, and a view 380, respectively, of auser 302 interacting with an automated assistant that can rely oncomputerized glasses 304 for device arbitration. These figuresillustrate at least an instance in which the user 302 causes certainoperations to be performed at a computing device in a room, and thenrelocates to a separate room but maintains the ability to provideassistant inputs to the computerized glasses 304 to control theoperations. For example, the user 302 can provide a spoken utterance 312such as, “Assistant, play footage from the security camera from lastnight.” The spoken utterance 312 can include a request for the automatedassistant to access a security application and render video data fromthe security application at a display device accessible to the automatedassistant.

In some implementations, in order to determine a particular device thatthe user 302 is intending the video data to be rendered at, theautomated assistant can cause one or more devices to provide one or moredifferent outputs, respectively. The outputs can be detected bycomputerized glasses 304 being worn by the user 302 when the userprovided the spoken utterance 312. For example, the automated assistantcan identify one or more candidate devices that detected the spokenutterance 312. In some implementations, the automated assistant cancause each candidate device to provide an output. The output that iscaused to be provided at each candidate device can be distinct relativeto the output(s) that are caused to be provided at the other candidatedevice(s). Put another way, each of the candidate devices can be causedto provide a corresponding unique output. In some implementations, theautomated assistant causes the output at a candidate device to berendered one or more times at the candidate device and causes eachrendering to be for less than a given duration of time, such as lessthan a tenth of a second or less than fifty milliseconds. In some ofthose and/or other implementations, the output rendered at a candidatedevice can be output that may not be detectable by a human without anartificial modality. For example, the automated assistant can cause atelevision 306 and a tablet device 310 to incorporate an image into oneor more graphical content frames being rendered at the television 306and the tablet device 310, respectively. The frames that include theimage can be rendered at a frequency that is greater than a framefrequency detectable by humans (e.g., greater than or equal to 60 framesper second). In this way, if the user 302 is facing the television 306when they provided the spoken utterance 312, a forward facing camera ofthe computerized glasses 304 can detect the image in one or more frameswithout the user 302 being interrupted. Alternatively, or additionally,when both the television 306 and the tablet device 310 are within afield of view of the forward facing camera and/or the user 302, theautomated assistant can determine that the television 306 occupies moreof the focal point of the user 302, and/or the computerized glasses 304,than the tablet device 310.

In some implementations, the automated assistant can determine that thetelevision 306 and the tablet device 310 are near the computerizedglasses 304 and/or the user 302 when the user 302 provides a spokenutterance. Based on this determination, the automated assistant cancause the television 306 and the tablet device 310 to render differentimages to identify the device that is in the field of view of the cameraand/or the computerized glasses 304. The automated assistant can thendetermine whether one or more cameras of the computerized glasses 304have detected one image but not another image, in order to identify theparticular device that the user 302 is directing their input.

In some implementations, one or more devices in an environment caninclude LEDs that can be controlled by each corresponding device and/oran automated assistant during device arbitration. Light emitted from theLEDs can then be detected in order to select a particular device thatwill be responsive to an input from the user 302. For example, inresponse to a spoken utterance from the user 302 being detected at afirst device and a second device, the automated assistant can cause afirst LED of the first device and a second LED of the second device toilluminate. When the automated assistant determines that light emittedfrom the first LED, but not the second LED, is being detected by thecomputerized glasses 304, the automated assistant can select the firstdevice to be responsive to the spoken utterance. Alternatively, oradditionally, the automated assistant can cause each LED to illuminateto exhibit certain properties in order to assist with devicearbitration. For example, the first LED can illuminate such that aproperty of the light emitted by the first LED is different from aproperty of other light emitted by the second LED. Such properties caninclude color, amplitude, duration, frequency, and/or any other propertyof light that can be controlled by an application and/or device. Forexample, the automated assistant can cause the first LED to illuminatefor 0.1 seconds every 0.5 seconds, and the second LED to illuminate for0.05 seconds every 0.35 seconds. In this way, one or more cameras of thecomputerized glasses 304 can detect these patterns of light, and theautomated assistant can correlate each detected pattern to eachrespective device. The automated assistant can then identify the LEDthat the user 302 is directing their gaze and/or computerized glasses304 towards in order to select a particular device that will beresponsive to the user input.

In some instances, the automated assistant can determine that the spokenutterance 312 is directed to the television 306, and can cause thetelevision of 306 to perform an operation 314 of playing camera footagefrom the security camera at the television 306. For example, theautomated assistant can cause a security application to be accessed atthe television 306 to render the security footage that the user 302 isrequesting. When the security application is launched, an icon 330identifying the security application and selectable GUI elements 332(i.e., graphical elements) can be rendered at the television 306. Inorder to identify certain features of the camera footage, the user 302can listen to audio 316 from the television 306 and view the videorendered at a display interface of the television 306. Furthermore, theuser 302 can perform various physical gestures to control the television306 and/or the security application via the computerized glasses 304.For example, the computerized glasses 304 can include an outward facingcamera 322 that can capture image data for processing by the automatedassistant. For instance, when the user 302 performs a swipe gesture 326,the automated assistant can detect the swipe gesture 326 and cause thesecurity application to perform a particular operation corresponding tothe swipe gesture 326 (e.g., fast forward).

In some implementations, that user 302 can relocate to another room intheir home to cause the computerized glasses 304 to operate in a waythat reflects a relocation 344 of the user 302. For example, the user302 can relocate, as illustrated in FIG. 3C and FIG. 3D, from theenvironment 308 to a separate environment 362 to change their laundry364, while also still listening to audio 316 from the securityapplication. The computerized glasses 304 can provide an interface forcontrolling the security application and/or the automated assistant inresponse to the user 302 relocating away from the television 306. Insome implementations, a determination that the user 302 has relocatedcan be based on data generated at the computerized glasses and/or one ormore other devices in the environment 308. In some implementations, thecomputerized glasses 304 can indicate that the user 302 can control anapplication and/or device that they were previously observing throughthe computerized glasses 304. For example, an icon 330 representing thesecurity application can be rendered in a display interface of thecomputerized glasses 304. Alternatively, or additionally, selectable GUIelements 332 and graphical elements 384 that were rendered at thetelevision 306 can be rendered at the display interface of thecomputerized glasses 304 in response to the user 302 redirecting theirgaze and/or face away from the television 306.

In some implementations, device arbitration can be performed using thecomputerized glasses 304 when the user 302 may not be looking at adevice and/or otherwise directing their attention towards anothercomputer device. For example, and as provided in FIG. 3E, the user 302can perform a gesture 382 to provide an input to the automatedassistant, a particular application, and/or a particular computingdevice. One or more cameras (e.g., an outward facing camera 322) of thecomputerized glasses can detect the physical gesture, which can be aphysical gesture in which the user 302 maneuvers their hand from a leftposition 368 towards the right. In response to detecting the physicalgesture 382, the automated assistant can operate to identify one or moredevices that detected the physical gesture. In some instances, theautomated assistant may determine that only the computerized glasses 304detected the physical gesture 382. Regardless, the automated assistantcan determine whether the physical gesture 382 was intended toinitialize one or more operations at the computerized glasses 304 and/ora separate device.

In some instances, the user 302 may be viewing content from the securityapplication at the display interface of the computerized glasses 304. Insuch instances, the automated assistant can determine that the physicalgesture 382 is intended to affect an operation of the securityapplication. In response to the physical gesture 382, the automatedassistant can cause the security application to fast forward certaincontent being rendered at the computerized glasses 304. Alternatively,or additionally, the automated assistant can perform a heuristicsprocess for identifying an application and/or device to which the user302 is directing the physical gesture 382. In some implementations, andwith prior permission from the user 302, the automated assistant candetermine that the user 302 was most recently gazing at the television306, and before gazing at the television 306, the user 302 was gazing atthe tablet device 310. This determination can cause the automatedassistant to prioritize the television 306 over the tablet device 310when selecting a device that will be responsive to the physical gesture382.

Alternatively, or additionally, the automated assistant can determine,based on image data from an inward facing camera 324 of the computerizedglasses 304, that the user 302 was most recently gazing at the securityapplication at the television 306 and, before gazing at the securityapplication, the user 302 was gazing at a social media application atthe tablet device 310. Based on identifying the security application andthe social media application, the automated assistant can determine thatthe physical gesture 382 is acceptable as an input to the securityapplication but not as an input to the social media application.Therefore, according to this process, the automated assistant can selectthe security application to be responsive to the physical gesture inputfrom the user 302.

In some implementations, device arbitration can be performed using oneor more trained machine learning models that can be used to processapplication data and/or contextual data. The application data can, forexample, characterize operating states of one or more applications thatmay be associated with the user 302 when the user 302 provides thephysical gesture 382. Alternatively, or additionally, the contextualdata can characterize features of a context in which the user 302provided the physical gesture 382. Such features can include, but arenot limited to, a location of the user 302, a time of day, one or moreactivities of the user (with prior permission from the user), and/or anyother information that could be associated with the user 302 when theuser 302 provides the physical gesture 382. For example, audio datacaptured by one or more microphones of the computerized glasses 304,and/or one or more other devices, can be processed to identifycontextual features of an environment, with prior permission from theuser 302. Audio data that captures sound from a movie can, for example,be used to assist the automated assistant with determining whether thephysical gesture 382 should affect an application that is rendering themovie. When the automated assistant determines that the physical gesture382 is intended to affect the movie (e.g., fast forward the moviethrough a portion of the movie that the user 302 does not want to hear),the automated assistant can generate command data that can becommunicated to the application that is rendering the movie, without theuser necessarily gazing at the television 306 that is displaying themovie.

FIG. 4 illustrates a system 400 for performing device arbitration usingdata available from a device, such as computerized glasses, that hasfunctionality for performing augmented reality. The automated assistant404 can operate as part of an assistant application that is provided atone or more computing devices, such as a computing device 402 and/or aserver device. A user can interact with the automated assistant 404 viaassistant interface(s) 420, which can be a microphone, a camera, a touchscreen display, a user interface, and/or any other apparatus capable ofproviding an interface between a user and an application. For instance,a user can initialize the automated assistant 404 by providing a verbal,textual, and/or a graphical input to an assistant interface 420 to causethe automated assistant 404 to initialize one or more actions (e.g.,provide data, control a peripheral device, access an agent, generate aninput and/or an output, etc.). Alternatively, the automated assistant404 can be initialized based on processing of contextual data 436 usingone or more trained machine learning models. The contextual data 436 cancharacterize one or more features of an environment in which theautomated assistant 404 is accessible, and/or one or more features of auser that is predicted to be intending to interact with the automatedassistant 404.

The computing device 402 can include a display device, which can be adisplay panel that includes a touch interface for receiving touch inputsand/or gestures for allowing a user to control applications 434 of thecomputing device 402 via the touch interface. In some implementations,the computing device 402 can lack a display device, thereby providing anaudible user interface output, without providing a graphical userinterface output. Furthermore, the computing device 402 can provide auser interface, such as a microphone, for receiving spoken naturallanguage inputs from a user. In some implementations, the computingdevice 402 can include a touch interface and can be void of a camera,but can optionally include one or more other sensors. In someimplementations, the computing device 402 can provide augmented realityfunctionality and/or can be a wearable device such as, but not limitedto, computerized glasses, a contact lens, a watch, an article ofclothing, and/or any other wearable device. Accordingly, althoughvarious implementations are described herein with respect tocomputerized glasses, techniques disclosed herein can be implemented inconjunction with other electronic devices that include augmented realityfunctionality, such as other wearable devices that are not computerizedglasses.

The computing device 402 and/or other third party client devices can bein communication with a server device over a network, such as theinternet. Additionally, the computing device 402 and any other computingdevices can be in communication with each other over a local areanetwork (LAN), such as a Wi-Fi network. The computing device 402 canoffload computational tasks to the server device to conservecomputational resources at the computing device 402. For instance, theserver device can host the automated assistant 404, and/or computingdevice 402 can transmit inputs received at one or more assistantinterfaces 420 to the server device. However, in some implementations,the automated assistant 404 can be hosted at the computing device 402,and various processes that can be associated with automated assistantoperations can be performed at the computing device 402.

In various implementations, all or less than all aspects of theautomated assistant 404 can be implemented on the computing device 402.In some of those implementations, aspects of the automated assistant 404are implemented via the computing device 402 and can interface with aserver device, which can implement other aspects of the automatedassistant 404. The server device can optionally serve a plurality ofusers and their associated assistant applications via multiple threads.In implementations where all or less than all aspects of the automatedassistant 404 are implemented via computing device 402, the automatedassistant 404 can be an application that is separate from an operatingsystem of the computing device 402 (e.g., installed “on top” of theoperating system)—or can alternatively be implemented directly by theoperating system of the computing device 402 (e.g., considered anapplication of, but integral with, the operating system).

In some implementations, the automated assistant 404 can include aninput processing engine 406, which can employ multiple different modulesfor processing inputs and/or outputs for the computing device 402 and/ora server device. For instance, the input processing engine 406 caninclude a speech processing engine 408, which can process audio datareceived at an assistant interface 420 to identify the text embodied inthe audio data. The audio data can be transmitted from, for example, thecomputing device 402 to the server device to preserve computationalresources at the computing device 402. Additionally, or alternatively,the audio data can be exclusively processed at the computing device 402.

The process for converting the audio data to text can include a speechrecognition algorithm, which can employ neural networks, and/orstatistical models for identifying groups of audio data corresponding towords or phrases. The text converted from the audio data can be parsedby a data parsing engine 410 and made available to the automatedassistant 404 as textual data that can be used to generate and/oridentify command phrase(s), intent(s), action(s), slot value(s), and/orany other content specified by the user. In some implementations, outputdata provided by the data parsing engine 410 can be provided to aparameter engine 412 to determine whether the user provided an inputthat corresponds to a particular intent, action, and/or routine capableof being performed by the automated assistant 404 and/or an applicationor agent that is capable of being accessed via the automated assistant404. For example, assistant data 438 can be stored at the server deviceand/or the computing device 402, and can include data that defines oneor more actions capable of being performed by the automated assistant404, as well as parameters necessary to perform the actions. Theparameter engine 412 can generate one or more parameters for an intent,action, and/or slot value, and provide the one or more parameters to anoutput generating engine 414. The output generating engine 414 can useone or more parameters to communicate with an assistant interface 420for providing an output to a user, and/or communicate with one or moreapplications 434 for providing an output to one or more applications434.

In some implementations, the automated assistant 404 can be anapplication that can be installed “on top of” an operating system of thecomputing device 402 and/or can itself form part of (or the entirety of)the operating system of the computing device 402. The automatedassistant application includes, and/or has access to, on-device speechrecognition, on-device natural language understanding, and on-devicefulfillment. For example, on-device speech recognition can be performedusing an on-device speech recognition module that processes audio data(detected by the microphone(s)) using an end-to-end speech recognitionmachine learning model stored locally at the computing device 402. Theon-device speech recognition generates recognized text for a spokenutterance (if any) present in the audio data. Also, for example,on-device natural language understanding (NLU) can be performed using anon-device NLU module that processes recognized text, generated using theon-device speech recognition, and optionally contextual data, togenerate NLU data.

NLU data can include intent(s) that correspond to the spoken utteranceand optionally parameter(s) (e.g., slot values) for the intent(s).On-device fulfillment can be performed using an on-device fulfillmentmodule that utilizes the NLU data (from the on-device NLU), andoptionally other local data, to determine action(s) to take to resolvethe intent(s) of the spoken utterance (and optionally the parameter(s)for the intent). This can include determining local and/or remoteresponses (e.g., answers) to the spoken utterance, interaction(s) withlocally installed application(s) to perform based on the spokenutterance, command(s) to transmit to internet-of-things (IoT) device(s)(directly or via corresponding remote system(s)) based on the spokenutterance, and/or other resolution action(s) to perform based on thespoken utterance. The on-device fulfillment can then initiate localand/or remote performance/execution of the determined action(s) toresolve the spoken utterance.

In various implementations, remote speech processing, remote NLU, and/orremote fulfillment can at least selectively be utilized. For example,recognized text can at least selectively be transmitted to remoteautomated assistant component(s) for remote NLU and/or remotefulfillment. For instance, the recognized text can optionally betransmitted for remote performance in parallel with on-deviceperformance, or responsive to failure of on-device NLU and/or on-devicefulfillment. However, on-device speech processing, on-device NLU,on-device fulfillment, and/or on-device execution can be prioritized atleast due to the latency reductions they provide when resolving a spokenutterance (due to no client-server roundtrip(s) being needed to resolvethe spoken utterance). Further, on-device functionality can be the onlyfunctionality that is available in situations with no or limited networkconnectivity.

In some implementations, the computing device 402 can include one ormore applications 434 which can be provided by a third-party entity thatis different from an entity that provided the computing device 402and/or the automated assistant 404. An application state engine of theautomated assistant 404 and/or the computing device 402 can accessapplication data 430 to determine one or more actions capable of beingperformed by one or more applications 434, as well as a state of eachapplication of the one or more applications 434 and/or a state of arespective device that is associated with the computing device 402. Adevice state engine of the automated assistant 404 and/or the computingdevice 402 can access device data 432 to determine one or more actionscapable of being performed by the computing device 402 and/or one ormore devices that are associated with the computing device 402.Furthermore, the application data 430 and/or any other data (e.g.,device data 432) can be accessed by the automated assistant 404 togenerate contextual data 436, which can characterize a context in whicha particular application 434 and/or device is executing, and/or acontext in which a particular user is accessing the computing device402, accessing an application 434, and/or any other device or module.

While one or more applications 434 are executing at the computing device402, the device data 432 can characterize a current operating state ofeach application 434 executing at the computing device 402. Furthermore,the application data 430 can characterize one or more features of anexecuting application 434, such as content of one or more graphical userinterfaces being rendered at the direction of one or more applications434. Alternatively, or additionally, the application data 430 cancharacterize an action schema, which can be updated by a respectiveapplication and/or by the automated assistant 404, based on a currentoperating status of the respective application. Alternatively, oradditionally, one or more action schemas for one or more applications434 can remain static, but can be accessed by the application stateengine to determine a suitable action to initialize via the automatedassistant 404.

The computing device 402 can further include an assistant invocationengine 422 that can use one or more trained machine learning models toprocess application data 430, device data 432, contextual data 436,and/or any other data that is accessible to the computing device 402.The assistant invocation engine 422 can process this data to determinewhether or not to wait for a user to explicitly speak an invocationphrase to invoke the automated assistant 404, or consider the data to beindicative of an intent by the user to invoke the automated assistant—inlieu of requiring the user to explicitly speak the invocation phrase.For example, the one or more trained machine learning models can betrained using instances of training data that are based on scenarios inwhich the user is in an environment where multiple devices and/orapplications are exhibiting various operating states. The instances oftraining data can be generated to capture training data thatcharacterizes contexts in which the user invokes the automated assistantand other contexts in which the user does not invoke the automatedassistant.

When the one or more trained machine learning models are trainedaccording to these instances of training data, the assistant invocationengine 422 can cause the automated assistant 404 to detect, or limitdetecting, spoken invocation phrases from a user based on features of acontext and/or an environment. Additionally, or alternatively, theassistant invocation engine 422 can cause the automated assistant 404 todetect, or limit detecting for one or more assistant commands from auser based on features of a context and/or an environment. In someimplementations, the assistant invocation engine 422 can be disabled orlimited based on the computing device 402 detecting an assistantsuppressing output from another computing device. In this way, when thecomputing device 402 is detecting an assistant suppressing output, theautomated assistant 404 will not be invoked based on contextual data436—which would otherwise cause the automated assistant 404 to beinvoked if the assistant suppressing output was not being detected.

In some implementations, the system 400 can include a device arbitrationengine 416 that can assist with performing device arbitration when oneor more devices and/or applications detect an input from a user. Forexample, in some implementations the device arbitration engine 416 canprocess data from one or more different devices to determine whetherinitialize a device arbitration process. In some implementations, datacan be received via a network connection, one or more interfaces of thesystem 400, and/or any other modality through which a computing devicecan receive data. For example, the device arbitration engine 416 candetermine that multiple different devices are projecting an ultrasonicsound and/or light in response to an assistant input. Based on thisdetermination, the device arbitration engine 416 can initialize aprocess for selecting a particular device of the multiple differentdevices that will be responsive to the assistant input from the user.

In some implementations, the system 400 can include a gaze detectionengine 418, which can determine a gaze of the user relative to one ormore different objects in an environment of the user. For example, thesystem 400 can be computerized glasses that include an inward facingcamera that is directed to one or more eyes of the user. Based on imagedata generated using the inward facing camera, the system 400 canidentify a particular area in the environment that the user is directingtheir eyes toward. In some implementations, the gaze detection engine418 can determine a direction of gaze of the user based on data from oneor more different devices, such as a separate computing device thatincludes a camera. The image data from the separate computing device canindicate, with prior permission of the user, a posture of the userand/or a direction in which the user is directing one or more of theirappendages. In this way, the gaze detection engine 418 can determine adirection in which the user is directing their attention before, during,and/or after the user provides an input to the automated assistant 404.

In some implementations, the system 400 includes a field of view engine426, which can process data characterizing a field of view of the userand/or one or more cameras of a device. For example, the field of viewengine 426 can process image data from one or more cameras ofcomputerized glasses in order to identify one or more objects and/ordevices that are located in a field of view of the camera at one or moreinstances of time. In some implementations, the field of view engine 426can also process device data 432 in order to identify certain objectsthat may be associated with certain devices in a field of view of auser. For example, a kitchen sink may be an object that is associatedwith a standalone display device of a user. Therefore, the field of viewengine 426 can determine that a standalone computing device is subjectto a user input when the kitchen sink is identified in a field of viewof the user when the user provided the user input.

In some implementations, the system 400 can include an interface contentengine 424 for causing one or more interfaces of the system 400 torender content according to output from the device arbitration engine416. For example, when the device arbitration engine 416 identifies thecomputing device 402 as being subject to an input from a user, theinterface content engine 424 can cause content to be rendered at one ormore interfaces of the computing device 402 (e.g., a display interfaceof computerized glasses). When the device arbitration engine 416determines that the user directed an input to a separate computingdevice, and the separate computing device is in a field of view of theuser, the interface content engine 424 can cause a notification to berendered for the separate computing device. For example, the interfacecontent engine 424 can cause graphical content to be rendered at adisplay interface of the computing device 402 when the computing device402 is computerized glasses. The graphical content can be rendered suchthat the graphical content appears “on top of” and/or adjacent to theseparate computing device in the field of view of the user (e.g., in anarea of the lenses of the glasses corresponding to the location of theseparate device). The graphical content can include, but is not limitedto one or more icons, colors, and/or other graphical features that canindicate that the device arbitration engine 416 has selected theseparate computing device as being responsive to the input from theuser.

In some implementations, the device arbitration engine 416 may requestadditional input from the user in order to assist with identifying aparticular device that the user intended to be subject to an input. Thedevice arbitration engine 416 can communicate an identifier and/orlocation of the candidate devices to the interface content engine 424,which can render graphical indications, in the lenses of thecomputerized glasses, at or near a relative location of the candidatedevices. For example, a first selectable element can be rendered at aleft most portion of a display interface of the computerized glasses inorder to indicate that a computing device in a left most portion of thefield of view of the user is a candidate device. A second selectableelement can be rendered in a more central location of the displayinterface, simultaneous to the first selectable element, in order toindicate that another computing device in a central portion of the fieldof view of the user is also a candidate device. The user can thenperform a gesture (e.g., holding up their index finger) in front oftheir face, in order that one or more cameras of the computerizedglasses will capture the gesture. The gesture can indicate to theautomated assistant 404 that a particular device (e.g., the central mostdevice) is the device that the user intended to be responsive to userinput.

FIG. 5 illustrates a method 500 for effectuating device arbitration in amulti-device environment using data available from a wearable computingdevice, such as computerized glasses. The method 500 can be performed byone or more computing devices, applications, and/or any other apparatusor module that can be associated with an automated assistant. The method500 can include an operation 502 of determining whether an assistantinput has been detected. The assistant input can be a user input that isprovided by a user to one or more computing devices that provide accessto an automated assistant. In some implementations, the assistant inputcan be provided to a computing device with augmented realityfunctionality, such as computerized glasses, computerized contactlenses, a phone, a tablet device, a portable computing device, asmartwatch, and/or any other computing device that can augmentperception of one or more users. It should be noted that in theimplementations discussed herein that include computerized glasses, thecomputerized glasses can be any computer device that provides augmentedreality functionality. When the assistant input is detected, the method500 can proceed from the operation 502 to an operation 504. Otherwise,the automated assistant can continue to determine whether a user hasprovided input to the automated assistant.

The operation 504 can be an optional operation that includes determiningwhether the assistant input was detected at multiple devices. Forexample, the user can be wearing a pair of computerized glasses whilegazing at a standalone speaker device that provides access to theautomated assistant. Therefore, when the user provides the assistantinput, the assistant input can be detected at the computerized glasses,the standalone speaker device, and one or more other devices in anenvironment of the user. When a single computing device has exclusivelydetected the assistant input, the method 500 can proceed from theoperation 504 to an operation 512, in which the particular computingdevice that detected the assistant input is caused to initializeperformance of one or more operations. However, when multiple deviceshave detected the assistant input, the method 500 can proceed from theoperation 504 to an operation 506, to initialize device arbitration forselecting one or more devices for responding to the assistant input.

The operation 506 can include identifying candidate devices thatdetected the assistant input from the user. For example, when theassistant input is a spoken utterance, the automated assistant canidentify multiple devices that captured audio data corresponding to thespoken utterance. In some implementations, each candidate device cancapture audio data and process the audio data to generate a score forthe assistant input. When each score on each candidate device satisfiesat threshold, device arbitration can be initialized for those candidatedevices. For example, the candidate devices can include the computerizedglasses, the standalone speaker device, and a tablet device that theuser may have set down on a table near the user. The method 500 canproceed from the operation 506 to an operation 508 to further adetermination of whether the assistant input was directed to aparticular computing device.

The operation 508 can include processing data generated at the candidatedevices and/or the computerized glasses. For example, the computerizedglasses can include an outward facing camera and/or an inward facingcamera that can be used to generate image data for identifying aparticular device that the user may be directing the assistant input.Image data generated using the outward facing camera can capture animage that includes one of the candidate devices and/or an objectassociated with a candidate device. For instance, the standalone speakerdevice may be supported by a decorative table that the user was lookingat when the user provided the assistant info. As a result, when thedecorative table and/or the standalone speaker device is determined tobe in a viewing window of the user and/or the computerized glasses, theautomated assistant can determine that assistant input was directed tothe standalone speaker device. Alternatively, or additionally, one ormore of the candidate devices can provide an output that can be detectedby one or more sensors of the computerized glasses. Therefore, when thecomputerized glasses detect an output from a particular device of thecandidate devices, the automated assistant can determine that theassistant input was directed to that particular device.

The method 500 can proceed to an operation 510, which can includedetermining whether the assistant input was directed to a particularcandidate device based on the processing at operation 508. When theautomated assistant determines that the assistant input is directed to aparticular candidate device, aside from the computerized glasses, themethod 500 can proceed from the operation 510 to the operation 512.Alternatively, when the automated assistant and/or another applicationdetermines that the assistant input was not directed to a particularcandidate device, the method 500 can proceed from the operation 510 toan operation 514.

The operation 514 can include determining whether the system input wasdirected to the computerized glasses and/or another computing devicethat provides augmented reality functionality. For example, the user canprovide a spoken utterance when they are hand-writing in a notebookwhile wearing the computerized glasses. Therefore, although the othercandidate devices may have detected the spoken utterance from the user,none of the other candidate devices may be visible in a viewing windowof the computerized glasses. As a result, the automated assistant candetermine that the user intended for the automated assistant to respondto the spoken utterance via the computerized glasses. For example, theuser may request that the automated assistant check the spelling of aword written in a notebook while the user is gazing at the notebook andwearing the computerized glasses. In response, the automated assistantcan cause the computerized glasses to render one or more of graphicalelements indicating whether the word is spelled correctly in thenotebook via augmented reality and/or provide an audible output via oneor more speakers of the computerized glasses.

When the automated assistant determines that the assistant input isdirected to the computerized glasses, the method 500 can proceed fromthe operation 514 to the operation 512. Otherwise, the method 500 canproceed from the operation 514 to an operation 516. The operation 516can be an optional operation that includes requesting additional inputfrom the user to assist the automated assistant with identifying aparticular computing device that the user intended the assistant inputto be directed to. Thereafter, the method 500 can proceed from theoperation 516 to the operation 502 and/or the operation 504.

FIG. 6 is a block diagram 600 of an example computer system 610.Computer system 610 typically includes at least one processor 614 whichcommunicates with a number of peripheral devices via bus subsystem 612.These peripheral devices may include a storage subsystem 624, including,for example, a memory 625 and a file storage subsystem 626, userinterface output devices 620, user interface input devices 622, and anetwork interface subsystem 616. The input and output devices allow userinteraction with computer system 610. Network interface subsystem 616provides an interface to outside networks and is coupled tocorresponding interface devices in other computer systems.

User interface input devices 622 may include a keyboard, pointingdevices such as a mouse, trackball, touchpad, or graphics tablet, ascanner, a touchscreen incorporated into the display, audio inputdevices such as voice recognition systems, microphones, and/or othertypes of input devices. In general, use of the term “input device” isintended to include all possible types of devices and ways to inputinformation into computer system 610 or onto a communication network.

User interface output devices 620 may include a display subsystem, aprinter, a fax machine, or non-visual displays such as audio outputdevices. The display subsystem may include a cathode ray tube (CRT), aflat-panel device such as a liquid crystal display (LCD), a projectiondevice, or some other mechanism for creating a visible image. Thedisplay subsystem may also provide non-visual display such as via audiooutput devices. In general, use of the term “output device” is intendedto include all possible types of devices and ways to output informationfrom computer system 610 to the user or to another machine or computersystem.

Storage subsystem 624 stores programming and data constructs thatprovide the functionality of some or all of the modules describedherein. For example, the storage subsystem 624 may include the logic toperform selected aspects of method 500, and/or to implement one or moreof system 400, computerized glasses 104, television 106, tablet device110, computing device 122, computerized glasses 204, television 306,computerized glasses 304, tablet device 310, computing device 342,and/or any other application, device, apparatus, and/or module discussedherein.

These software modules are generally executed by processor 614 alone orin combination with other processors. Memory 625 used in the storagesubsystem 624 can include a number of memories including a main randomaccess memory (RAM) 630 for storage of instructions and data duringprogram execution and a read-only memory (ROM) 632 in which fixedinstructions are stored. A file storage subsystem 626 can providepersistent storage for program and data files, and may include a harddisk drive, a floppy disk drive along with associated removable media, aCD-ROM drive, an optical drive, or removable media cartridges. Themodules implementing the functionality of certain implementations may bestored by file storage subsystem 626 in the storage subsystem 624, orother machines accessible by the processor(s) 614.

Bus subsystem 612 provides a mechanism for letting the variouscomponents and subsystems of computer system 610 communicate with eachother as intended. Although bus subsystem 612 is shown schematically asa single bus, alternative implementations of the bus subsystem may usemultiple busses.

Computer system 610 can be of varying types including a workstation,server, computing cluster, blade server, server farm, or any other dataprocessing system or computing device. Due to the ever-changing natureof computers and networks, the description of computer system 610depicted in FIG. 6 is intended only as a specific example for purposesof illustrating some implementations. Many other configurations ofcomputer system 610 are possible having more or fewer components thanthe computer system depicted in FIG. 6 .

In situations in which the systems described herein collect personalinformation about users (or as often referred to herein,“participants”), or may make use of personal information, the users maybe provided with an opportunity to control whether programs or featurescollect user information (e.g., information about a user's socialnetwork, social actions or activities, profession, a user's preferences,or a user's current geographic location), or to control whether and/orhow to receive content from the content server that may be more relevantto the user. Also, certain data may be treated in one or more waysbefore it is stored or used, so that personal identifiable informationis removed. For example, a user's identity may be treated so that nopersonal identifiable information can be determined for the user, or auser's geographic location may be generalized where geographic locationinformation is obtained (such as to a city, zip code, or state level),so that a particular geographic location of a user cannot be determined.Thus, the user may have control over how information is collected aboutthe user and/or used.

While several implementations have been described and illustratedherein, a variety of other means and/or structures for performing thefunction and/or obtaining the results and/or one or more of theadvantages described herein may be utilized, and each of such variationsand/or modifications is deemed to be within the scope of theimplementations described herein. More generally, all parameters,dimensions, materials, and configurations described herein are meant tobe exemplary, and that the actual parameters, dimensions, materials,and/or configurations will depend upon the specific application orapplications for which the teachings is/are used. Those skilled in theart will recognize, or be able to ascertain, using no more than routineexperimentation, many equivalents to the specific implementationsdescribed herein. It is, therefore, to be understood that the foregoingimplementations are presented by way of example only and that, withinthe scope of the appended claims and equivalents thereto,implementations may be practiced otherwise than as specificallydescribed and claimed. Implementations of the present disclosure aredirected to each individual feature, system, article, material, kit,and/or method described herein. In addition, any combination of two ormore such features, systems, articles, materials, kits, and/or methods,if such features, systems, articles, materials, kits, and/or methods arenot mutually inconsistent, is included within the scope of the presentdisclosure.

In some implementations, a method implemented by one or more processorsis set forth as including operations such as determining that a user hasdirected an assistant input to an automated assistant that is accessiblevia any one computing device of multiple computing devices that areconnected to a network, wherein the user is wearing computerizedglasses, the computerized glasses being a computing device that includesone or more cameras, and wherein the user is located in an environmentthat includes the multiple computing devices. The method can furtherinclude an operation of identifying, based on the assistant input fromthe user, two or more candidate devices, of the multiple computingdevices, that detected the assistant input from the user, wherein thetwo or more candidate devices are separate from the computerizedglasses. The method can further include an operation of determining,based on processing image data generated using the one or more camerasof the computerized glasses, whether the assistant input is directed toa particular computing device, of the two or more candidate devices, orthe computerized glasses. In some implementations, the method canfurther include an operation of, when the assistant input is determinedto be directed to the particular computing device, of the two or morecandidate devices: causing the particular computing device to performone or more operations corresponding to the assistant input.

In some implementations, determining whether the assistant input isdirected to the particular computing device, of the two or morecandidate devices, or the computerized glasses includes: determining,based on the image data, whether the particular computing device of thetwo or more candidate devices is located in a viewing window of the oneor more cameras. In some implementations, a camera of the one or morecameras of the computerized glasses is directed towards an eye of theuser, and determining that the particular computing device of the two ormore candidate devices is associated with a visual perspective of theuser includes: determining that a gaze of the user is directed moretowards the particular computing device than towards any other device ofthe two or more candidate devices.

In some implementations, determining whether the assistant input isdirected to the particular computing device, of the two or morecandidate devices, or the computerized glasses includes: determiningwhether a particular object in a viewing window of the one or morecameras is associated with a relative location of the particularcomputing device of the two or more candidate devices. In someimplementations, the particular computing device is not located in theviewing window of the one or more cameras of the computerized glasses.In some implementations, the assistant input is a physical gestureperformed by the user, and the physical gesture is detected by thecomputerized glasses. In some implementations, the computerized glassesinclude a graphical display interface that is rendering content when theuser provides the assistant input, and wherein the method furthercomprises: when the assistant input is determined to be directed to thecomputerized glasses: causing the content being rendered at thegraphical display interface of the computerized glasses to be modifiedaccording to the physical gesture.

In some implementations, the method further comprises: when theassistant input is determined to be directed to the computerized glassesand the particular computing device: causing a first portion of contentto be rendered at the particular computing device, and causing a secondportion of content to be rendered at a display interface of thecomputerized glass. In some implementations, the particular computingdevice is a detachable accessory device that is connected to a displaydevice, and the particular computing device is not visible in a viewingwindow of the one or more cameras of the computerized glasses. In someimplementations, the computerized glasses include a graphical displayinterface that is at least partially transparent when the graphicaldisplay interface is rendering content, and wherein the method furthercomprises: when the assistant input is determined to be directed to theparticular computing device, of the two or more candidate devices:causing a graphical element to be rendered at a location in thegraphical display interface corresponding to the particular computingdevice.

In some implementations, the assistant input includes a request for theautomated assistant to initialize a particular application, and thegraphical element is based on the particular application. In someimplementations, identifying the two or more candidate devices, of themultiple computing devices, that detected the assistant input from theuser includes: determining that the particular computing device isrendering a first output and another computing device of the multiplecomputing devices is rendering a second output, wherein the first outputand the second output are detected by the computerized glasses.

In some implementations, the particular computing device includes agraphical display interface and the first output includes a graphicalelement that is rendered at the graphical display interface, and thegraphical element is embodied in one or more graphical content framesthat are rendered at a frequency of greater than or equal to 60 framesper second. In some implementations, the first output is different fromthe second output, and determining whether the assistant input isdirected to the particular computing device, of the two or morecandidate devices, or the computerized glasses includes: determiningthat the first output was detected within a viewing window of thecomputerized glasses and the second output was not detected within theviewing window of the computerized glasses.

In other implementations, a method implemented by one or more processorsis set forth as including operations such as determining, by a computingdevice, that a user has provided an input to an automated assistant thatis accessible via one or more computing devices that are located in anenvironment with the user, wherein the input corresponds to a requestfor the automated assistant to provide content for the user, and whereinthe one or more computing devices include computerized glasses that theuser is wearing when the user provided the input. The method can furtherinclude an operation of identifying, based on the input from the user, aparticular device to render the content for the user, wherein theparticular device is separate from the computerized glasses. The methodcan further include an operation of causing, based on identifying theparticular device, the particular device to render the content for theuser. The method can further include an operation of processingcontextual data that is provided by the one or more computing devicesthat were in the environment of the user when the user provided theinput. The method can further include an operation of determining, basedon the contextual data, whether to provide the user with additionalcontent that is associated with the request. The method can furtherinclude an operation of when the automated assistant determines toprovide the additional content to the user: causing the computerizedglasses to perform one or more additional operations in furtherance ofrendering the additional content via one or more interfaces of thecomputerized glasses.

In some implementations, the contextual data includes image data that isprovided by one or more cameras of the computerized glasses, anddetermining whether to provide the user with the additional contentassociated with the request includes: determining whether the user islooking at the particular device when the particular device isperforming the one or more operations. In some implementations, causingthe computerized glasses to render the additional content includes:causing the computerized glasses to access content data via a networkconnection, and causing a display interface of the computerized glassesto render one or more graphical elements based on the content data.

In yet other implementations, a method implemented by one or moreprocessors is set forth as including operations such as determining, bya computing device, that a user provided an input to an automatedassistant that is accessible via the computing device, wherein the inputcorresponds to a request for the automated assistant to perform one ormore operations. The method can further include an operation ofreceiving, by the computing device, contextual data that indicates theuser is wearing computerized glasses, wherein the computerized glassesare separate from the computing device. The method can further includean operation of causing, based on the contextual data, an interface ofthe computing device to render an output that can be detected at anotherinterface of the computerized glasses. The method can further include anoperation of determining whether the computerized glasses detected theoutput from the computing device. The method can further include anoperation of, when the computing device determines that the computerizedglasses detected the output: causing the computing device to perform theone or more operations in furtherance of fulfilling the request.

In some implementations, determining whether the computerized glassesdetected the output from the computing device includes: processing othercontextual data that indicates whether one or more cameras of thecomputerized glasses detected the output from the computing device. Insome implementations, the method can further include an operation of,when the computing device determines that the computerized glassesdetected the output: causing the computerized glasses to render one ormore graphical elements that can be selected in response to a physicalgesture from the user.

We claim:
 1. A method implemented by one or more processors, the methodcomprising: determining that a user has directed an assistant input toan automated assistant that is accessible via any of multiple computingdevices that are connected to a network, wherein the user is wearingcomputerized glasses, the computerized glasses being a computing devicethat includes one or more cameras, and wherein the user is located in anenvironment that includes the multiple computing devices; identifyingthat one or more first properties of first light are emitted by a firstcomputing device of the multiple computing devices and that one or moresecond properties of second light are emitted by a second computingdevice of the multiple computing devices, the one or more firstproperties being unique from the one or more second properties, whereinthe first computing device and the second computing device are separatefrom the computerized glasses; determining, based on processing imagedata generated using the one or more cameras of the computerizedglasses, that the one or more first properties of the first lightemitted from the first computing device are detected in the image data;determining that the assistant input is directed to the first computingdevice, wherein determining that the assistant input is directed to thefirst computing device is based on determining that the one or morefirst properties of the first light are detected in the image data; inresponse to determining that the assistant input is directed to thefirst computing device: causing the first computing device to performone or more operations corresponding to the assistant input.
 2. Themethod of claim 1, further comprising: causing, in response to theassistant input, the first computing device to emit the first light withthe first properties and the second computing device to emit the secondlight with the second properties; wherein identifying that one or morefirst properties of first light are emitted by the first computingdevice and that one or more second properties of second light areemitted by the second computing device is based on causing the firstcomputing device to emit the first light with the first properties andthe second computing device to emit the second light with the secondproperties.
 3. The method of claim 2, wherein the assistant inputcomprises a spoken utterance and wherein causing the first computingdevice to emit the first light with the first properties and the secondcomputing device to emit the second light with the second properties isin response to the spoken utterance being detected at the firstcomputing device and being detected at the second computing device. 4.The method of claim 1, wherein the first light, emitted by the firstcomputing device, is emitted from one or more light emitting diodes(LEDs) of the first device.
 5. The method of claim 1, wherein the one ormore first properties of the first light include: a size, a shape, acolor, an amplitude, a duration, and/or a frequency.
 6. The method ofclaim 5, wherein the one or more first properties of the first lightinclude the frequency and the one or more second properties of thesecond light include an alternate frequency that varies from thefrequency of the first light.
 7. The method of claim 1, whereindetermining that the assistant input is directed to the first computingdevice is further based on a detected gaze, of the user, being directedtoward the first computing device.
 8. A method implemented by one ormore processors, the method comprising: determining that a user hasdirected an assistant input to an automated assistant that is accessiblevia multiple computing devices that are connected to a network, whereinthe user is wearing computerized glasses, the computerized glasses beinga computing device that includes one or more cameras, and wherein theuser is located in an environment that includes the multiple computingdevices; identifying, for each of one or more of the multiple computingdevices, that corresponding light emitted by the computing device hasone or more corresponding properties, the one or more correspondingproperties for each of the one or more of the multiple computing devicesbeing unique relative to the one or more corresponding properties forother of the one or more of the multiple computing devices, wherein theone or more of the multiple computing devices are separate from thecomputerized glasses; determining, based on processing image datagenerated using the one or more cameras of the computerized glasses,that the one or more corresponding properties of the corresponding lightemitted by the one or more of the multiple computing devices are not ina focal point in the image data; determining that the assistant input isdirected to the computerized glasses, wherein determining that theassistant input is directed to the computerized glasses is based ondetermining that the one or more corresponding properties of thecorresponding light emitted by the one or more of the multiple computingdevices are not in a focal point in the image data; in response todetermining that the assistant input is directed to the computerizedglasses: causing the computerized glasses to perform one or moreoperations corresponding to the assistant input.
 9. The method of claim8, wherein the corresponding light emitted by a given computing device,of the one or more computing devices, is from one or more light emittingdiodes (LEDs) of the given computing device.
 10. The method of claim 8,wherein the one or more corresponding properties of corresponding lightemitted by a given computing device, of the one or more computingdevices, includes: a size, a shape, a color, an amplitude, a duration,and/or a frequency.
 11. The method of claim 8, wherein determining thatthe assistant input is directed to the computerized glasses is furtherbased on whether a detected gaze, of the user, is directed towards theone or more of the multiple computing devices.
 12. The method of claim8, further comprising: causing, in response to the assistant input, eachof one or more of the multiple computing devices to emit thecorresponding light with the one or more corresponding properties. 13.The method of claim 12, wherein the assistant input comprises a spokenutterance and where causing the one or more computing devices to emitthe corresponding light is in response to the spoken utterance beingdetected at the one or more computing devices.
 14. A method implementedby one or more processors, the method comprising: determining that auser has directed an assistant input to an automated assistant that isaccessible via multiple computing devices that are connected to anetwork, wherein the user is wearing computerized glasses, thecomputerized glasses being a computing device that includes one or morecameras, and wherein the user is located in an environment that includesthe multiple computing devices; identifying one or more first graphicalrenderings rendered by a first computing device of the multiplecomputing devices and one or more second graphical renderings renderedby a second computing device of the multiple computing devices, the oneor more first graphical renderings of the first computing deviceproviding a unique identification for the first computing device and theone or more second graphical renderings by the second computing deviceproviding a unique identification for the second computing device,wherein the first computing device and the second computing device areseparate from the computerized glasses; determining, based on processingimage data generated using the one or more cameras of the computerizedglasses, that the one or more graphical renderings of the firstcomputing device are detected in the image data; determining that theassistant input is directed to the first computing device, whereindetermining that the assistant input is directed to the first computingdevice is based on determining that the one or more first graphicalrenderings of the first computing device are detected in the image data;in response to determining that the assistant input is directed to thefirst computing device: causing the first computing device to performone or more operations corresponding to the assistant input.
 15. Themethod of claim 14, wherein determining that the assistant input isdirected to the first computing device is further based on a detectedgaze, of the user, being directed toward the first computing device. 16.The method of claim 14, wherein the one or more first graphicalrenderings are rendered at a frequency that is greater than sixty framesper second.